[Python] Pipenvで仮想環境をプロジェクトディレクトリ配下に作る方法

[Python] Pipenvで仮想環境をプロジェクトディレクトリ配下に作る方法

Clock Icon2019.06.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どうも!大阪オフィスの西村祐二です。

突然ですが、私はPython環境をPipenvで管理しています。

本番で利用するライブラリと開発時のみ利用するライブラリとで分けれたり、npmみたいな使い方ができてとても便利です。

ただ、作成される仮想環境がプロジェクトディレクトリとは別の場所の~/.local/share/virtualenvs/配下に作られて、エディタの設定や取扱が面倒なときがたまにあります。

そこで今回は備忘録兼ねて、Pipenvで仮想環境をプロジェクトディレクトリ配下に作る設定をしてみます。

環境

pipenv: version 2018.11.26

どうやるか

ドキュメントを眺めていたら設定項目がありました!

https://pipenv.readthedocs.io/en/latest/advanced/#pipenv.environments.PIPENV_VENV_IN_PROJECT

環境変数によって、制御することができるようです。

デフォルト設定としてプロジェクトディレクトリ配下に仮想環境を作成してほしかったので、.zshrc(bashの人はbashrcなど適宜変更してください)に記載しておきます。

export PIPENV_VENV_IN_PROJECT=true

試してみる

.zshrcに設定したので、実際にプロジェクト配下に.venvが作成されるか試してみます。

$ mkdir test
$ cd test

// 環境を作ります
$ pipenv shell
reating a virtualenv for this project…
Pipfile: /Users/yuji/study/python/test/Pipfile
Using /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7 (3.7.3) to create virtualenv…
⠋ Creating virtual environment...Already using interpreter /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7
Using real prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7'
New python executable in /Users/yuji/study/python/test/.venv/bin/python3.7
Also creating executable in /Users/yuji/study/python/test/.venv/bin/python
Installing setuptools, pip, wheel...
done.

✔ Successfully created virtual environment!
Virtualenv location: /Users/yuji/study/python/test/.venv
Creating a Pipfile for this project…
Launching subshell in virtual environment…
 . /Users/yuji/study/python/test/.venv/bin/activate
 
// .venvが配下に作成されています
$ ls -la
total 8
drwxr-xr-x   4 yuji  staff  128  6  8 22:21 .
drwxr-xr-x  11 yuji  staff  352  6  8 22:21 ..
drwxr-xr-x   7 yuji  staff  224  6  8 22:21 .venv
-rw-r--r--   1 yuji  staff  138  6  8 22:21 Pipfile

// 環境からぬけます
$ exit

きちんと.venvがプロジェクトディレクトリ配下に作られていました!

さいごに

今回はPipenvで仮想環境の.venvをプロジェクトディレクトリ配下に作成する方法を紹介しました。

他にも設定がたくさんあるので、これからも紹介していければと思います。

誰かの参考になれば幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.